/*按指定的行列打印字符*/
#include<stdio.h>
void display(char ch, int lines, int width); 

int main(void)
{
    int ch;         /*待打印的字符*/
    int rows, cols; /*行 列*/

    printf("Enter a character and two integers:\n");
    while((ch = getchar()) != '\n')
    {
        if(scanf("%d %d", &rows, &cols) != 2)//scanf注意 取地址符号&
        {
            break;
        }
        display(ch, rows, cols);//按下 enter 也传送了一个换行符
        //跳过一轮输入结束与下一轮输入开始之间的所有换行符或空格
        while(getchar() != '\n')//getchar() 不会跳过换行符
        {
            continue;
        }
        printf("Enter another character and two integers;\n");
        printf("Enter a newline to quit.\n");            
    }
    printf("Bye.\n");//Enter = '\n'
    
    return 0;
}

void display(char ch, int lines, int width)
{
    int rows, cols;

    for(rows = 1; rows <= lines; rows++)
    {
        for(cols = 1; cols <= width; cols++)
        {
            putchar(ch);
        }
        putchar('\n');
    }

    return;
}

//注意：
//混合使用getchar()和scanf()时，如果在调用getchar()之前，scanf()在输出行留下一个换行符，会导致一些问题